package com.easpeed.comon.utils

import java.nio.ByteBuffer


object IntArrayConversion {
    // 将 int[] 转换为 byte[]
    @JvmStatic
    fun intArrayToByteArray(intArray: IntArray): ByteArray {
        val byteBuffer = ByteBuffer.allocate(intArray.size * 4)
        for (value in intArray) {
            byteBuffer.putInt(value)
        }
        return byteBuffer.array()
    }

    @JvmStatic
    // 将 byte[] 转换为 int[]
    fun byteArrayToIntArray(byteArray: ByteArray): IntArray {
        val intArray = IntArray(byteArray.size / 4)
        val byteBuffer = ByteBuffer.wrap(byteArray)

        for (i in intArray.indices) {
            intArray[i] = byteBuffer.getInt()
        }
        return intArray
    }

    @JvmStatic
    fun main(args: Array<String>) {
        val originalIntArray = intArrayOf(1, 256, 65536, -1) // 示例 int 数组

        // int[] 转换为 byte[]
        val byteArray = intArrayToByteArray(originalIntArray)
        println("Byte array:")
        for (b in byteArray) {
            System.out.printf("%02X ", b)
        }
        println()

        // byte[] 转换回 int[]
        val convertedIntArray = byteArrayToIntArray(byteArray)
        println("Recovered int array:")
        for (i in convertedIntArray) {
            print("$i ")
        }
    }
}